package controlador;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import org.hibernate.criterion.Restrictions;

import modelo.Empresa;
import modelo.Usuario;

import dao.imp.Base_DatosDAO;

import vista.frmGestionarUsuario;
import vista.frmInicio;

public class ControladorInicio implements ActionListener{

	private frmInicio formularioinicio;
	private static final String root = "administrador";
	private int mensaje_error;
	private static final String title = "SACFRE/Login";
	
	public ControladorInicio(){
		super();
		formularioinicio = new frmInicio(); 
		formularioinicio.setVisible(true);
		formularioinicio.setLocationRelativeTo(null);
		formularioinicio.AgregarEscuchadores(this);
		mensaje_error = formularioinicio.getMensaje().ERROR_MESSAGE;
		LimpiarPantalla();
	}
	
	@Override
	public void actionPerformed(ActionEvent e) {
		String actionCommand = e.getActionCommand();
		if (actionCommand.equals("Entrar")){
			Entrar();
		}else if (actionCommand.equals("Cancelar")){
			LimpiarPantalla();
		}
	}

	private void Entrar() {
		Base_DatosDAO conexion = new Base_DatosDAO();
		Empresa empresa = (Empresa)conexion.findByProperty(Empresa.class,Restrictions.eq("estatus", 'a')).get(0);
		Usuario usuario = empresa.Buscar_Usuario(formularioinicio.getTxtid().getText());
		if (usuario==null){
			formularioinicio.getMensaje().showMessageDialog(formularioinicio, "El usuario no es encuentra Registrado", title,this.mensaje_error);
		}else if (usuario.getEstatus()=='e'){
			formularioinicio.getMensaje().showMessageDialog(formularioinicio, "El usuario se encuentra inactivo, Solo "+this.root+" puede Reactivarlo", title,this.mensaje_error);
		}else if (!usuario.getPassword().equals(formularioinicio.getPtpassword().getText())){
			formularioinicio.getMensaje().showMessageDialog(formularioinicio, "EL password introducido es incorrecto", title,this.mensaje_error);
		}else {
			new ControladorHome(usuario);
			formularioinicio.dispose();
		}
	}

	private void LimpiarPantalla() {
		formularioinicio.getTxtid().setText("");
		formularioinicio.getPtpassword().setText("");
	}

}
